package com.ruoyi.cinema.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 影片排期对象 film_schedule
 *
 * @author HHAOYU
 * @date 2020-12-08
 */
@TableName("film_schedule")
public class FilmSchedule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @TableId(value = "id")
    private Long id;
    /** 影院ID */
    @Excel(name = "影院ID")
    private Long cinemaId;
    /** 排期编码 */
    private String scheduleId;
    /** 排期校验串 */
    private String scheduleKey;
    /** 影院内码 */
    private String cinemaLinkId;
    /** 放映开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "放映开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date showDateTime;
    /** 影厅编码 */
    private String hallCode;
    /** 影厅名称 */
    @Excel(name = "影厅名称")
    private String hallName;
    /** 标准价 */
    @Excel(name = "标准价")
    private Long ticketStandardPrice;
    /** 最低票价 */
    @Excel(name = "最低票价")
    private Long ticketLowestPrice;
    /** 网络代售费 */
    @Excel(name = "网络代售费")
    private Long ticketFee;
    /** 网络代售费类型 ，order每张单计费，ticket每张票计费 */
    @Excel(name = "网络代售费类型 ，order每张单计费，ticket每张票计费")
    private String feeType;
    /** 截止售票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "截止售票时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date stopSellingTime;
    /** 开售标示 */
    private String saleStatus;
    /** 对应座位图版本编码 */
    private String seatVersion;
    /** 是否明星场 */
    private String starsShowFlag;
    /** 是否首映 */
    private String firstShowFlag;
    /** 场次自动开售时间 */
    private Date saleOpenDateTime;
    /** 影片编码 */
    private String filmCode;
    /** 影片ID */
    @Excel(name = "影片ID")
    private Long filmId;
    /** 影片语言 */
    @Excel(name = "影片语言")
    private String language;
    /** 影片语言编码 */
    private String languageCode;
    /** 影片时长 */
    @Excel(name = "影片时长")
    private Long duration;
    /** 影片视觉 */
    @Excel(name = "影片视觉")
    private String dimensional;
    /** 影片版本编码 */
    private String dimensionalCode;

    @TableField(exist=false)
    private Long ticketRealPrice;
    @TableField(exist=false)
    private Long ticketActivityPrice;
    @TableField(exist=false)
    private Long ticketLowActivityPromoId;
    @TableField(exist=false)
    private String promoTag;

    private Long areaId;
    private String mapCode;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDateTime;

    @TableField(exist=false)
    private List<ScheduleAreaInfo> scheduleAreaInfoList;
    @TableField(exist=false)
    private List<SchedulePromoArea> schedulePromoAreaList;
    @TableField(exist=false)
    private Film film;

    private String filmName;
    private String cinemaName;

    public Long getAreaId() {
        return areaId;
    }

    public void setAreaId(Long areaId) {
        this.areaId = areaId;
    }

    public String getMapCode() {
        return mapCode;
    }

    public void setMapCode(String mapCode) {
        this.mapCode = mapCode;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCinemaId(Long cinemaId)
    {
        this.cinemaId = cinemaId;
    }

    public Long getCinemaId()
    {
        return cinemaId;
    }
    public void setScheduleId(String scheduleId)
    {
        this.scheduleId = scheduleId;
    }

    public String getScheduleId()
    {
        return scheduleId;
    }
    public void setScheduleKey(String scheduleKey)
    {
        this.scheduleKey = scheduleKey;
    }

    public String getScheduleKey()
    {
        return scheduleKey;
    }
    public void setCinemaLinkId(String cinemaLinkId)
    {
        this.cinemaLinkId = cinemaLinkId;
    }

    public String getCinemaLinkId()
    {
        return cinemaLinkId;
    }

    public Date getShowDateTime() {
        return showDateTime;
    }

    public void setShowDateTime(Date showDateTime) {
        this.showDateTime = showDateTime;
    }

    public void setHallCode(String hallCode)
    {
        this.hallCode = hallCode;
    }

    public String getHallCode()
    {
        return hallCode;
    }
    public void setHallName(String hallName)
    {
        this.hallName = hallName;
    }

    public String getHallName()
    {
        return hallName;
    }
    public void setTicketStandardPrice(Long ticketStandardPrice)
    {
        this.ticketStandardPrice = ticketStandardPrice;
    }

    public Long getTicketStandardPrice()
    {
        return ticketStandardPrice;
    }
    public void setTicketLowestPrice(Long ticketLowestPrice)
    {
        this.ticketLowestPrice = ticketLowestPrice;
    }

    public Long getTicketLowestPrice()
    {
        return ticketLowestPrice;
    }
    public void setTicketFee(Long ticketFee)
    {
        this.ticketFee = ticketFee;
    }

    public Long getTicketFee()
    {
        return ticketFee;
    }
    public void setFeeType(String feeType)
    {
        this.feeType = feeType;
    }

    public String getFeeType()
    {
        return feeType;
    }
    public void setStopSellingTime(Date stopSellingTime)
    {
        this.stopSellingTime = stopSellingTime;
    }

    public Date getStopSellingTime()
    {
        return stopSellingTime;
    }
    public void setSaleStatus(String saleStatus)
    {
        this.saleStatus = saleStatus;
    }

    public String getSaleStatus()
    {
        return saleStatus;
    }
    public void setSeatVersion(String seatVersion)
    {
        this.seatVersion = seatVersion;
    }

    public String getSeatVersion()
    {
        return seatVersion;
    }
    public void setStarsShowFlag(String starsShowFlag)
    {
        this.starsShowFlag = starsShowFlag;
    }

    public String getStarsShowFlag()
    {
        return starsShowFlag;
    }
    public void setFirstShowFlag(String firstShowFlag)
    {
        this.firstShowFlag = firstShowFlag;
    }

    public String getFirstShowFlag()
    {
        return firstShowFlag;
    }

    public void setFilmCode(String filmCode)
    {
        this.filmCode = filmCode;
    }

    public String getFilmCode()
    {
        return filmCode;
    }
    public void setFilmId(Long filmId)
    {
        this.filmId = filmId;
    }

    public Long getFilmId()
    {
        return filmId;
    }
    public void setLanguage(String language)
    {
        this.language = language;
    }

    public String getLanguage()
    {
        return language;
    }
    public void setLanguageCode(String languageCode)
    {
        this.languageCode = languageCode;
    }

    public String getLanguageCode()
    {
        return languageCode;
    }
    public void setDuration(Long duration)
    {
        this.duration = duration;
    }

    public Long getDuration()
    {
        return duration;
    }
    public void setDimensional(String dimensional)
    {
        this.dimensional = dimensional;
    }

    public String getDimensional()
    {
        return dimensional;
    }
    public void setDimensionalCode(String dimensionalCode)
    {
        this.dimensionalCode = dimensionalCode;
    }

    public String getDimensionalCode()
    {
        return dimensionalCode;
    }

    public Date getEndDateTime() {
        return endDateTime;
    }

    public void setEndDateTime(Date endDateTime) {
        this.endDateTime = endDateTime;
    }

    public Date getSaleOpenDateTime() {
        return saleOpenDateTime;
    }

    public void setSaleOpenDateTime(Date saleOpenDateTime) {
        this.saleOpenDateTime = saleOpenDateTime;
    }

    public Long getTicketRealPrice() {
        return ticketRealPrice;
    }

    public void setTicketRealPrice(Long ticketRealPrice) {
        this.ticketRealPrice = ticketRealPrice;
    }

    public List<ScheduleAreaInfo> getScheduleAreaInfoList() {
        return scheduleAreaInfoList;
    }

    public void setScheduleAreaInfoList(List<ScheduleAreaInfo> scheduleAreaInfoList) {
        this.scheduleAreaInfoList = scheduleAreaInfoList;
    }

    public List<SchedulePromoArea> getSchedulePromoAreaList() {
        return schedulePromoAreaList;
    }

    public void setSchedulePromoAreaList(List<SchedulePromoArea> schedulePromoAreaList) {
        this.schedulePromoAreaList = schedulePromoAreaList;
    }

    public Film getFilm() {
        return film;
    }

    public void setFilm(Film film) {
        this.film = film;
    }

    public Long getTicketActivityPrice() {
        return ticketActivityPrice;
    }

    public void setTicketActivityPrice(Long ticketActivityPrice) {
        this.ticketActivityPrice = ticketActivityPrice;
    }

    public Long getTicketLowActivityPromoId() {
        return ticketLowActivityPromoId;
    }

    public void setTicketLowActivityPromoId(Long ticketLowActivityPromoId) {
        this.ticketLowActivityPromoId = ticketLowActivityPromoId;
    }

    public String getPromoTag() {
        return promoTag;
    }

    public void setPromoTag(String promoTag) {
        this.promoTag = promoTag;
    }

    public String getFilmName() {
        return filmName;
    }

    public void setFilmName(String filmName) {
        this.filmName = filmName;
    }

    public String getCinemaName() {
        return cinemaName;
    }

    public void setCinemaName(String cinemaName) {
        this.cinemaName = cinemaName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("cinemaId", getCinemaId())
            .append("scheduleId", getScheduleId())
            .append("scheduleKey", getScheduleKey())
            .append("cinemaLinkId", getCinemaLinkId())
            .append("showDateTime", getShowDateTime())
            .append("hallCode", getHallCode())
            .append("hallName", getHallName())
            .append("ticketStandardPrice", getTicketStandardPrice())
            .append("ticketLowestPrice", getTicketLowestPrice())
            .append("ticketFee", getTicketFee())
            .append("feeType", getFeeType())
            .append("stopSellingTime", getStopSellingTime())
            .append("saleStatus", getSaleStatus())
            .append("seatVersion", getSeatVersion())
            .append("starsShowFlag", getStarsShowFlag())
            .append("firstShowFlag", getFirstShowFlag())
            .append("saleOpenDateTime", getSaleOpenDateTime())
            .append("filmCode", getFilmCode())
            .append("filmId", getFilmId())
            .append("language", getLanguage())
            .append("languageCode", getLanguageCode())
            .append("duration", getDuration())
            .append("dimensional", getDimensional())
            .append("dimensionalCode", getDimensionalCode())
            .toString();
    }
}
